【技术分享】RAID磁盘阵列你了解多少?
什么是RAID?
RAID其本意是“价格便宜且具有冗余能力的磁盘阵列”。最早是由加利福尼亚大学伯克利分校在1987年提出的概念。其原理是由多块小容量的硬盘组合成一个大型的磁盘组,配合数据分散存储的设计提高了数据读写的速度。同时在数据写入阵列后,会生成冗余校验(raid 0不具有)提高了整体的安全性。
(磁盘阵列)
RAID的优势
01
数据传输速度快
磁盘阵列一般都采用机械硬盘,大多使用SAS接口的硬盘,SAS接口也称之为“串口”。在SAS盘被采用之前,磁盘阵列多采用SCSI接口硬盘,可称之“并口”硬盘。随着人们对数据存储的更高需求,目前SCSI硬盘也早已成为了历史。
无论是什么接口的机械硬盘,其物理结构大致相同,由数据的载体“盘片”、读写数据的“磁头组件”、带动磁头摆动的“音圈电机”、带动盘片旋转的“主轴电机”及“数据线接口”组成。如图1
(图1:硬盘物理结构)
从逻辑层面,机械硬盘由“扇区”、“磁道”、“柱面”等组成。用户在向硬盘中写入数据时,首先由磁头在盘片上进行“寻道”,定位到空白磁道后才会将要写入的内容从缓存芯片读出写入到指定磁道中。写满一条磁道后,再次寻道继续写入。这无形中就会增加数据读写的时间。
而使用磁盘阵列进行数据存储,数据都是以“条带”的形式分别存储在多块成员盘上。也就是在第一块盘写入数据的同时,其他成员盘开始寻道,并等待着数据的写入。所以在使用磁盘阵列进行数据写入时的速度要比单块硬盘速度快,这就是其中的原因之一。目前SAS接口的硬盘理论速度可达12Gb/S。
02
数据的安全性高
前文有提到磁盘阵列一般都会采用冗余校验机制,比如RAID5级别的磁盘阵列,其中一块成员盘故障后RAID组会自动踢出该故障盘,剩余的成员盘由RAID组自动进行Rebuild操作校验出故障成员盘丢失的数据,并将数据存储在其余成员盘中。
再比如RAID1,成员盘之间甚至采用完全备份的方式进行数据存储,从而大大提高了RAID系统的容错度,提高系统安全性。
03
日常维护简单
采用SAS接口的硬盘其稳定性非常有保障,甚至可以做到7*24小时不间断工作5年以上。
目前使用较多的RAID级别为RAID 5和RAID 6,对于数据安全要求较高的一般采用RAID 1、RAID 10/0+1等。上文提到RAID5级别的磁盘阵列允许其中一块成员盘故障离线,而RAID6级别的磁盘阵列允许最多2块成员盘离线。在发现有成员盘故障后,可使用同参数或高于的硬盘进行替换。而且在部署磁盘阵列时还可以选择加入“热备”硬盘。所以从日常维护角度还是比较容易的。
RAID级别
01
RAID 0
RAID 0又称之为“Stripe”,条带式存储之意。也是所有RAID级别中性能最高的。在进行数据存储时,将连续的数据分散到所有成员盘中,以相同扇区大小为单位形成一个数据存储块。如图2
(图2:RAID 0结构)
需要注意的是,采用RAID 0虽然存储速度非常快,但由于没有校验冗余所以数据安全无法得到保障。如果任意一块成员盘故障则整个磁盘阵列将无法继续工作,甚至有可能绝大部分数据无法恢复。
02
RAID 1
RAID 1上文介绍过,成员盘之间采用备份的形式,所以也称之为“Mirror”。是所有RAID级别中安全性最高的。很明显安全性得到了保障,但数据的存储成本也成倍增加,并且存储性能没有任何提升。所以一般应用于存放极为重要的数据。
(图3:RAID 1结构)
了解了RAID 0及RAID 1,还有两种RAID级别分别是RAID 10(RAID壹零,不读RAID拾)和RAID 0+1。其结构就是将RAID 0与RAID 1进行结合。在此不过多介绍,感兴趣的小伙伴可以自行研究一下。如图4
(图4:RAID 10)
03
RAID5
与其他RAID级别的磁盘阵列的结构相同,也是将数据以块为单位的形式分别存储在所有成员盘中,RAID 5相比以上两种RAID级别的区别在于加入了校验冗余,其算法为异或运算XOR。其符号表示为+。得出的校验结果被分散存储在所有成员盘中。如图5
(图5:RAID 5)
其中A1、A2、A3为顺序写入的数据块,3号成员盘第一个循环中的第一个条带Ap为校验带,同理,Bp、Cp、Dp均为校验块,分散存储在所有成员盘中。
根据校验的方向可以将RAID 5分为“左循环”和“右循环”;根据数据的存储顺序可以分为“同步”和“异步”。所以就有了RAID 5的四种类型,分别为“左同步”、“左异步”、“右同步”和“右异步”。如图6-9
RAID 5左同步(Left Synchronous)
(图6:左同步结构)
RAID 5左异步(Left Asynchronous)
(图7:左异步结构)
RAID 5右同步(Right Synchronous)
(图8:右同步结构)
RAID 5右异步(Right Synchronous)
(图9:右异步结构)
这里有个小常识,比如一组磁盘阵列级别为RAID
5,由4块单盘2TB的硬盘组成,没有设置热备硬盘。那么请问该磁盘阵列可用的容量是多少?
答案是6TB,而不是4*2TB=8TB。因为RAID
5中有校验冗余,在数据满载的情况下,虽然每个校验分散在所有成员盘中,但所有校验块加起来正好是一块盘的容量。
由存储结构可以看出,RAID 5结构的磁盘阵列由于加入了校验冗余,所以允许其中一块成员盘离线。在实际的案件分析中遇到数据“不新鲜”的情况,也会经常用到“缺盘”重组的方法。
END
预告:本文已为大家介绍了常见的RAID级别及其存储结构,当然还有一些扩展结构没有介绍,比如RAID1E、RAID 5E/5EE、RAID6等。大家可以根据今天的知识加以深入探索研究。下篇文章将结合案例为大家介绍RAID磁盘阵列的重组和数据恢复的方法,尽情期待!